# _*_ coding: utf-8 _*_
"""
@ 时间    ：2024/10/25 19:07
@ 作者    ：旺财
@ 文件    ：N维降维.py
@ 说明    ：   
"""

import numpy as np
import pandas as pd
from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler

# 二维降一维
x = np.array([[1, 1], [2, 2], [3, 3]])
print(x)
pca = PCA(n_components=1)
pca.fit(x)
x_pca = pca.transform(x)
print(x_pca)

# 三维降二维
x = pd.DataFrame(
    [[45, 0.8, 9120], [40, 0.12, 2600], [38, 0.09, 3042], [39, 0.21, 3500]],
    columns=['年龄(岁)', '负债比率', '月收入(元)']
)
print(x)
x_new = StandardScaler().fit_transform(x)   # 特征数据标准化
print(x_new)
pca = PCA(n_components=2)
pca.fit(x_new)
x_pca = pca.transform(x_new)
print(x_pca)
# print(pca.components_)  # 打印线性组合系数
